1. Field of the Invention
The present invention generally relates to annotating data objects and, more particularly, to maintaining annotations across different versions of data objects.
2. Description of the Related Art
An annotation system is one where descriptive information is stored about objects, or parts of objects, as an annotation. Some annotation systems store annotations separately, without modifying the objects themselves. An annotation store, typically a database, contains information for the annotation, typically in the form of descriptive text, or other classifiers. An indexing scheme is typically used to map each annotation to the object or positions of annotated portions within the object. The annotation system may be configured to display the annotation in response to the user selecting the annotated portions of the object. For example, one common method for displaying annotations is in a flyover text box generated when a user positions a mouse pointer in proximity to the annotated portion or portions of the object.
The annotations themselves may serve different functions for different applications. For example, for some applications, annotations may serve as an interactive help system, providing description of the functionality, or explain the use of the annotated object. As an example, in a business application, an annotation may explain the use of an economic performance parameter, such as a current year's revenue by division. For other applications, annotations may serve to provide expert feedback, comments, or clarifications from a reviewer or a creator of a document or other data object. As examples, the creator of a document may insert an annotation highlighting the relevance of a certain piece or group of data, while a reviewer of the same document may insert an annotation with instructions for revising the document, possibly to correct an error.
A challenge is presented, however, when an annotated document is changed, for example, creating a new version of the document. A policy should be established that determines how annotations should be maintained for different versions of a document. One approach is to apply a “no-change” policy on the document, whereby annotations are maintained for the original document only and do not apply to subsequent versions. While this approach is simple, there may be many cases where at least some annotations would apply to a subsequent version of a document, such as when the particular portion described by the annotation has not changed. Therefore, another approach would be to “carry-forward” annotations to subsequent versions of a document. However, in some cases, some of the annotations may no longer apply, such as when an annotated portion of the document is edited to render the annotation invalid or deleted entirely. Further, even if the annotation does apply to the new version, annotation indexes indicating the corresponding annotated portions of the document may need to be updated to reflect the changes in the document.
Thus, each of these policies has drawbacks and using either alone provides a less than ideal solution. Accordingly, there is a need for an annotation system that supports multiple policies for maintaining annotations after changes to an annotated source document, for example, allowing an annotation author to select one or more policies that best fit a particular situation.